package Client;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.util.ArrayList;

import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
 * Clase JDialog que muestra el historico de medidas de un sensor.
 * @author inlacou
 *
 */
public class JDialogHistorico extends JDialog {
	
	private Dimension minSize;
	private JTable historico;
	private TableModelNoEditable tbm;
	
	/**
	 * Constructor de la clase JDialogHistorico. Recibe parametros habituales de un JDialog y ademas el ArrayList de Strings con los valores a mostrar.
	 * @param jFP
	 * @param modality
	 * @param alMedidas
	 */
	public JDialogHistorico(JFrame jFP, ModalityType modality, ArrayList<String[]> alMedidas) {
		super(jFP, "Historico", modality);
		
		minSize = new Dimension(370, 160);
		
		Object[][] oo = new Object[alMedidas.size()][4];
		
		for(int i = 0; i < alMedidas.size(); i++){
			String[] s = alMedidas.get(i);
			for(int a = 0; a < 4; a++){
				oo[i][a] = s[a];
			}
		}
		
		Object[] o = new Object[]{"Fecha", "Hora", "Localizacion", "Valor"};
		
		tbm = new TableModelNoEditable(oo, o);
		historico = new JTable(tbm);
		
		//tbm.setColumnIdentifiers( new String[] { "Fecha", "Hora", "Localizacion", "Valor" } );
		historico.getColumn("Fecha").setPreferredWidth( 80 );
		historico.getColumn("Fecha").setMaxWidth( 200 );
		historico.getColumn("Hora").setPreferredWidth( 90 );
		historico.getColumn("Hora").setMaxWidth( 110 );
		historico.getColumn("Localizacion").setPreferredWidth( 130 );
		historico.getColumn("Valor").setPreferredWidth( 50 );
		historico.getColumn("Valor").setMaxWidth( 80 );
		
		historico.setPreferredScrollableViewportSize(new Dimension(200,150));
		historico.setAutoscrolls(true);
		
		//Propiedades de la ventana
		this.setLocation(	(int)jFP.getLocation().getX()+(int)jFP.getSize().getWidth()/3,
				(int)jFP.getLocation().getY()+(int)jFP.getSize().getHeight()/3
		); //Coloca esta ventana en una posicion relativa a su JFrame padre.
		this.setMinimumSize(minSize);
		this.setLayout(new BorderLayout());
		this.getContentPane().add(new JScrollPane(historico), BorderLayout.CENTER);
		this.setTitle("Historico");
	}
}
